home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / fortran / libry51.zip / LIBRY1.DOC < prev    next >
Text File  |  1989-11-10  |  4KB  |  76 lines

  1. .pn 1
  2. .pa
  3.                          REQUIREMENTS AND CONVENTIONS
  4.  
  5. LIBRY  is an indexed collection of object modules that can be linked to  other
  6. FORTRAN  object  modules.   An object module is a binary file  produced  by  a
  7. compiler  that contains machine instructions,  data,  and linker flags.  LIBRY
  8. contains object modules written in both assembler and FORTRAN. The linker will
  9. take  the  object module created by your FORTRAN compiler,  add to it what  it
  10. needs  from  LIBRY,   and create an executable module.  In order  to  run  any
  11. program,   you  must convert it through these steps into an executable  module
  12. (unless  you are running interpretive BASIC).  LIBRY is also compatible with a
  13. few other programming languages;  however,  BASIC is not one of these.  If all
  14. you have is BASIC don't bother reading any further. LIBRY is only available in
  15. object   module   form  (the  source  codes  are  not  available   under   any
  16. circumstances).
  17.  
  18. On the PC, LIBRY is contained in the file LIBRY.LIB. On the HP-1000F, LIBRY is
  19. contained in the file %LIBRY.  On the HP-A900,  LIBRY is contained in the file
  20. LIBRY.REL.
  21.  
  22. In  order  to  produce  a  compatible object module, you must have a Microsoft
  23. FORTRAN compiler (version 3.31 or later) or HP FTN7X.  In order to  link  your
  24. object module and LIBRY, you must have a Microsoft linker (LINK version 3.0 or
  25. later - I don't know what versions of LINK that come with DOS are compatible -
  26. you get LINK when you purchase FORTRAN anyway) or HP LOADR or LINK.  Your LINK
  27. (or DOS) manual will tell you how to access a library.  Refer to the LOADR  or
  28. LINK manuals for HP applications.
  29.  
  30. If  you  are  using  a  PC  you  also  need two other libraries that come with
  31. Microsoft  FORTRAN  (FORTRAN.LIB  and  MATH.LIB).   Do  not  attempt  to  link
  32. LIBRY.LIB  with  an  object  module  created  by a FORTRAN compiler other than
  33. Microsoft's.  Do not attempt to link LIBRY.LIB with an object  module  created
  34. by  anyone's  BASIC compiler.  Do not attempt to link LIBRY.LIB with either of
  35. the two optional math libraries that come with Microsoft FORTRAN (8087.LIB  or
  36. ALTMATH.LIB).
  37.  
  38. If you are using Microsoft FORTRAN don't use any of the following metacommands
  39. in your FORTRAN source code:  $LARGE, $DECMATH, $NOFLOATCALLS,  or  $STORAGE:4
  40. as they will make your object module incompatible with LIBRY.LIB.
  41.  
  42. All integers passed to LIBRY routines must be of the type INTEGER*2.  Put
  43.  
  44.           IMPLICIT INTEGER*2 (I-N)
  45.  
  46. in EVERY program segment (this greatly increases speed too).  You must use the
  47. "/FPi" and "/4I2" options when using Microsoft  FORTRAN/V4.0  or  later.   All
  48. reals must be of the type REAL*4.  Put
  49.  
  50.           IMPLICIT REAL*4 (A-H,O-Z)
  51.  
  52. in  EVERY  program  segment.   All  double precision reals must be of the type
  53. REAL*8.  Put
  54.  
  55.           IMPLICIT REAL*8 (A-H,O-Z)
  56.  
  57. in each program segment where double precision reals are used.  Remember  that
  58. all  double  precision  constants must have a "D" in them in order to allocate
  59. the proper space (don't pass "0." as a  constant  to  a  routine  expecting  a
  60. double  precision  real  -  use  "0.D0").   All  logicals  must be of the type
  61. LOGICAL*2.  Character variables can be of any length (I hate FORTRAN compilers
  62. that  permit  only  fixed  length  character  variables  so I do all character
  63. manipulation in assembler).
  64.  
  65. If  you are using a PC you don't need a math coprocessor (Intel  8087/287/387)
  66. in  order  to  run  a program linked with LIBRY;  but it  makes  a  TREMENDOUS
  67. difference  (a factor of 20 to 120 for floating point operations).  The vector
  68. emulations  will  run even without a math coprocessor;  but in that  case  the
  69. speed is already so slow that nothing will help. The improvement in speed with
  70. the vector emulations varies depending on the relative speed of your processor
  71. and  coprocessor  (not MHz speed but MIPS and FLOPS - a 5MHz-80286 is quite  a
  72. bit  faster  than  a  5MHz-8088 while a 5MHz-8087 is just as fast  as  a  5MHz
  73. 80287).    The   greatest   improvement   is  realized  on   a   PC   with   a
  74. 5MHz-8088/5MHz-8087 pair;  and the least improvement is realized on an AT with
  75. an 8MHz-80286/5MHz-80287 pair.
  76.